//
//  UIColor_Extension.swift
//  swiftProductTemplate
//
//  Created by 刘圣洁 on 2025/6/19.
//

import UIKit

// 扩展 UIColor，支持十六进制、主题色快捷访问
extension UIColor {
    // 1. 十六进制转颜色（支持 #RGB、#RGBA、#RRGGBB、#RRGGBBAA 格式）
    convenience init?(hex: String) {
        var cString = hex.trimmingCharacters(in: .whitespacesAndNewlines).uppercased()
        if cString.hasPrefix("#") {
            cString.remove(at: cString.startIndex)
        }
        if cString.count != 3 && cString.count != 4 &&
           cString.count != 6 && cString.count != 8 {
            return nil
        }

        var rgbValue: UInt64 = 0
        Scanner(string: cString).scanHexInt64(&rgbValue)

        switch cString.count {
        case 3: // #RGB
            self.init(red: CGFloat((rgbValue & 0xF00) >> 8) / 15.0,
                      green: CGFloat((rgbValue & 0x0F0) >> 4) / 15.0,
                      blue: CGFloat(rgbValue & 0x00F) / 15.0,
                      alpha: 1.0)
        case 4: // #RGBA
            self.init(red: CGFloat((rgbValue & 0xF000) >> 12) / 15.0,
                      green: CGFloat((rgbValue & 0x0F00) >> 8) / 15.0,
                      blue: CGFloat((rgbValue & 0x00F0) >> 4) / 15.0,
                      alpha: CGFloat(rgbValue & 0x000F) / 15.0)
        case 6: // #RRGGBB
            self.init(red: CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0,
                      green: CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0,
                      blue: CGFloat(rgbValue & 0x0000FF) / 255.0,
                      alpha: 1.0)
        case 8: // #RRGGBBAA
            self.init(red: CGFloat((rgbValue & 0xFF000000) >> 24) / 255.0,
                      green: CGFloat((rgbValue & 0x00FF0000) >> 16) / 255.0,
                      blue: CGFloat((rgbValue & 0x0000FF00) >> 8) / 255.0,
                      alpha: CGFloat(rgbValue & 0x000000FF) / 255.0)
        default:
            return nil
        }
    }

    // 2. 定义主题色（方便全局复用）
    static let appPrimaryColor = UIColor(hex: "#FF5A5F")! // 示例颜色
    static let appSecondaryColor = UIColor(hex: "#3B3B3B")!
}

// 使用示例
//let redColor = UIColor(hex: "#FF0000")
//let primary = UIColor.appPrimaryColor
